﻿function LoadParticipante(blnTutor, dialogID, textCSS, blnAsigna) {
    $(dialogID + ' .ParticipanteTable').jtable({
        paging: true,
        pageSize: 5,
        sorting: true,
        multiSorting: true,
        defaultSorting: 'nombres ASC',
        selecting: true,
        selectingCheckboxes: true,
        actions: {
            listAction: GetAppURL() + '/Participante/ParticipanteList'
        },
        fields: {
            idParticipanteXEvento: {
                key: true,
                list: false
            },
            nombres: {
                title: 'Nombres'
            },
            apellidos: {
                title: 'Apellidos'
            },
            codigo: {
                title: 'Codigo'
            }
        }
    });

    $(dialogID).dialog({
        title: "Seleccionar participante", autoOpen: false, modal: true, draggable: true,
        height: "auto", resizable: true, width: 550,
        buttons: {
            "Cancelar": function () {
                $(this).dialog("close");
            },
            "Seleccionar": function () {
                //marcar campo con codigo participante
                var $selectedRows = $(dialogID + ' .ParticipanteTable').jtable('selectedRows');
                if ($selectedRows.length > 0) {
                    $selectedRows.each(function () {
                        var record = $(this).data('record');
                        $('.' + textCSS).val(record.codigo);
                    });
                }
                //cerrar dialog
                $(this).dialog("close");
            }
        }
    });

    $(dialogID + ' .ConsultarPButton').click(function (e) {
        e.preventDefault();
        $(dialogID + ' .ParticipanteTable').jtable('load', {
            nombres: $(dialogID + ' .fnombres').val(),
            apellidos: $(dialogID + ' .fapellidos').val(),
            codigo: $(dialogID + ' .fcodigo').val(),
            bTutor: blnTutor,
            bAsigna: blnAsigna
        });
    });
}
function BuscarParticipante(dialogID) {
    $(dialogID + ' .fnombres').val('');
    $(dialogID + ' .fapellidos').val('');
    $(dialogID + ' .fcodigo').val('');
    $(dialogID + ' .ConsultarPButton').click();
    $(dialogID).dialog('open');
}

/** 
    Funciones para cargar datos participante

    **/
function LoadDatosEvento(divID) {
    $(divID + ' .accauto').accordion({ collapsible: true, heightStyle: "content" });
    $(divID + ' .accmenor').accordion({ collapsible: true, heightStyle: "content" });
}
function LimpiarCamposEvento(divID) {
    $(divID + ' input[name=idParticipanteXEvento]').val('');
    $(divID + ' input[name=codigo]').val('');
    $(divID + ' select[name=tipoTransporte]').val('');
    $(divID + ' input[name=marcaAuto]').val('');
    $(divID + ' input[name=placaAuto]').val('');
    $(divID + ' input[name=colorAuto]').val('');
    $(divID + ' input[name=duenioAuto]').each(function () { this.checked = false; });
    $(divID + ' input[name=codigoTutor]').val('');
    $(divID + ' input[name=cartaMenor]').each(function () { this.checked = false; });
    $(divID + ' input[name=firmaPadre]').each(function () { this.checked = false; });
    $(divID + ' input[name=firmaMadre]').each(function () { this.checked = false; });
    $(divID + ' input[name=firmoContrato]').each(function () { this.checked = false; });
    $(divID + ' input[name=cortesia]').each(function () { this.checked = false; });
    $(divID + ' input[name=recaudacion]').each(function () { this.checked = false; });
    $(divID + ' textarea[name=observaciones]').val('');
}
function CargarDatosEvento(divID, idParticipante, iEdad, mayor_edad, fOpenDialog) {
    $(divID + ' .accauto').hide();
    if (iEdad >= mayor_edad) {
        $(divID + ' .accmenor').hide();
    } else {
        $(divID + ' .accmenor').show();
    }
    LimpiarCamposEvento(divID);
    $(divID + ' input[name=idParticipante]').val(idParticipante);
    sendObj = { idParticipante: idParticipante };
    _ajaxCall({
        url: GetAppURL() + "/Participante/GetParticipanteXEvento",
        data: sendObj,
        success: function (result) {
            $(divID + ' input[name=idParticipanteXEvento]').val(result.Record.idParticipanteXEvento);
            $(divID + ' input[name=codigo]').val(result.Record.codigo);
            $(divID + ' select[name=tipoTransporte]').val(result.Record.idTipoTransporte);
            $(divID + ' input[name=marcaAuto]').val(result.Record.marcaAuto);
            $(divID + ' input[name=placaAuto]').val(result.Record.placaAuto);
            $(divID + ' input[name=colorAuto]').val(result.Record.colorAuto);
            $(divID + ' input[name=duenioAuto]').each(function () { this.checked = result.Record.duenioAuto; });
            $(divID + ' input[name=codigoTutor]').val(result.Record.codigoTutor);
            $(divID + ' input[name=cartaMenor]').each(function () { this.checked = result.Record.cartaMenor; });
            $(divID + ' input[name=firmaPadre]').each(function () { this.checked = result.Record.firmaPadre; });
            $(divID + ' input[name=firmaMadre]').each(function () { this.checked = result.Record.firmaMadre; });
            $(divID + ' input[name=firmoContrato]').each(function () { this.checked = result.Record.firmoContrato; });
            $(divID + ' input[name=cortesia]').each(function () { this.checked = result.Record.cortesia; });
            $(divID + ' input[name=recaudacion]').each(function () { this.checked = result.Record.recaudacion; });
            $(divID + ' textarea[name=observaciones]').val(result.Record.observaciones);
            if (result.Record.esAuto) $(divID + ' .accauto').show();

            if (fOpenDialog)
                fOpenDialog();
            
        }
    });
}
function LoadDatosEC(divID, divDetalleID) {
    $(divDetalleID).dialog({
        title: "Detalle de Pago", autoOpen: false, modal: true, draggable: true,
        height: "auto", resizable: true, width: 400,
        buttons: {
            "Aceptar": function () {
                $(this).dialog("close");
            }
        }
    });
    $(divID + ' .EstadoCuentaTable').jtable({
        title: 'Estado de Cuenta',
        actions: {
            listAction: GetAppURL() + '/Pago/ECPagoList'
        },
        fields: {
            idPago: {
                key: true,
                list: false
            },
            noPago: {
                title: 'No.'
            },
            fecha: {
                title: 'Fecha'
            },
            moneda: {
                title: 'Moneda'
            },
            monto: {
                title: 'Monto',
                display: function (data) {
                    var $span = $('<b><span class="' + ColorEstadoPago(data.record.estado) + '">' + data.record.monto + '</span></b>');
                    return $span;
                }
            },
            tipo: {
                title: 'Tipo'
            },
            detalle: {
                title: '',
                display: function (data) {
                    var $img = $('<img src="' + GetAppURL() + '/Content/images/ver.png" title="Ver Detalle" />');
                    //Abrir dialog de detalle al hacer click
                    $img.click(function () {
                        var estadocuenta = {
                            motivo: 'Pago de Evento',
                            noPago: data.record.noPago,
                            fecha: data.record.fecha,
                            moneda: data.record.moneda,
                            monto: data.record.monto,
                            tipo: data.record.tipo,
                            documento: data.record.documento,
                            observaciones: data.record.observaciones,
                            estado: data.record.estado,
                            boleta: data.record.boleta
                        }
                        DetalleEC(divDetalleID, estadocuenta);
                    });
                    return $img;
                }
            }
        }
    });
}
function CargarDatosEC(idParticipante, divID, divDetalleID, fOpenDialog) {
    $(divID + ' .EstadoCuentaTable').jtable('load', {
        idParticipante: idParticipante
    });
    var sendObj = { idParticipante: idParticipante };
    _ajaxCall({
        url: GetAppURL() + "/Pago/GetEstadoCuenta",
        data: sendObj,
        success: function (result) {
            $(divID + ' input[name=idparticipante]').val(result.Record.idParticipante);
            $(divID + ' input[name=subtotal]').val(result.Record.subtotal);
            $(divID + ' .moneda').html(result.Record.moneda);
            $(divID + ' input[name=recaudacion]').val(result.Record.recaudacion);
            $(divID + ' input[name=total]').val(result.Record.total);
            if (result.Record.bus) {
                $(divID + ' .pagobus').show();
                if (result.Record.pagobus) {
                    var $img = $('<img src="' + GetAppURL() + '/Content/images/ver.png" title="Ver Detalle" idPago=' + result.Record.idPagoBus + ' />');
                    //Abrir dialog de detalle al hacer click
                    $img.click(function () {
                        var iPagoBus = parseInt($(this).attr('idPago'));
                        DetallePB(iPagoBus, divDetalleID);
                    });
                    $(divID + ' .verpagobus').html($img);
                } else {
                    $(divID + ' .verpagobus').html('NO');
                }
            } else {
                $(divID + ' .pagobus').hide();
            }

            if (fOpenDialog)
                fOpenDialog();
        }
    });
}
function DetalleEC(divDetalleID, estadocuenta) {
    $(divDetalleID + ' .motivo').html(estadocuenta.motivo);
    $(divDetalleID + ' .nopago').html(estadocuenta.noPago);
    $(divDetalleID + ' .fecha').html(estadocuenta.fecha);
    $(divDetalleID + ' .monedapago').html(estadocuenta.moneda);
    $(divDetalleID + ' input[name=monto]').val(estadocuenta.monto);
    $(divDetalleID + ' .tipo').html(estadocuenta.tipo);
    $(divDetalleID + ' input[name=documento]').val(estadocuenta.documento);
    $(divDetalleID + ' .estado').html(estadocuenta.estado);
    $(divDetalleID + ' input[name=boleta]').val(estadocuenta.boleta);
    $(divDetalleID + ' textarea[name=observaciones]').val(estadocuenta.observaciones);

    $(divDetalleID).dialog('open');
}
function DetallePB(iPago, divDetalleID) {
    sendObj = { idPagoBus: iPago };
    _ajaxCall({
        url: GetAppURL() + "/Pago/GetPagoBus",
        data: sendObj,
        success: function (result) {
            DetalleEC(divDetalleID, result.Record);
        }
    });
}
function LoadDatosPersonales(divID) {
    $(divID + ' .accpersonal').accordion({ collapsible: true, heightStyle: "content" });
    $(divID + ' .acccontacto').accordion({ collapsible: true, heightStyle: "content" });
}
function CargarDatosPersonales(divID, idParticipante) {
    sendObj = { idParticipante: idParticipante };
    _ajaxCall({
        url: GetAppURL() + "/Participante/GetPerson",
        data: sendObj,
        success: function (result) {
            $(divID + ' input[name=nombre]').val(result.Record.nombre);
            $(divID + ' input[name=fechanacimiento]').val(result.Record.fechanacimiento);
            $(divID + ' input[name=sexo]').val(result.Record.sexo);
            $(divID + ' input[name=estadocivil]').val(result.Record.estadocivil);
            $(divID + ' input[name=pais]').val(result.Record.pais);
            $(divID + ' input[name=iglesia]').val(result.Record.iglesia);
            $(divID + ' input[name=telefonocasa]').val(result.Record.telefonocasa);
            $(divID + ' input[name=telefonomovil]').val(result.Record.telefonomovil);
            $(divID + ' input[name=telefonotrabajo]').val(result.Record.telefonotrabajo);
            $(divID + ' textarea[name=direccioncasa]').val(result.Record.direccioncasa);
            $(divID + ' textarea[name=direcciontrabajo]').val(result.Record.direcciontrabajo);
        }
    });
}
function LoadDocumentos(divID) {
    $(divID + ' .DocsTable').jtable({
        title: ' Documentos de Identificación',
        actions: {
            listAction: GetAppURL() + '/Participante/DocIDList'
        },
        fields: {
            idDocumentoXParticipante: {
                key: true,
                list: false
            },
            idTipoDocumentoID: {
                title: 'Tipo Documento',
                width: '30%',
                options: GetAppURL() + "/Participante/GetTipoDocumentoOptions"
            },
            noDocumento: {
                title: 'Numero Documento',
                width: '30%'
            }
        }
    });
}
function CargarDocumentos(divID, idParticipante) {
    $(divID + ' .DocsTable').jtable('load', {
        idParticipante: idParticipante
    });
}
function LoadDetalleParticipante(params) {
    //tabs
    $(params.divTabs).tabs({ collapsible: true });
    //load todo
    LoadDatosPersonales(params.divPersonal);
    LoadDocumentos(params.divDocumentos);
    LoadDatosEvento(params.divEvento);
    LoadDatosEC(params.divEC, params.divDetalleEC);
    //dialog
    $(params.divDialog).dialog({
        title: "Detalle participante",
        autoOpen: false,
        modal: true,
        draggable: true,
        height: "auto",
        resizable: true,
        width: 700,
        buttons: {
            "Aceptar": function () {
                $(this).dialog("close");
            }
        }
    });
}
function CargarDetalleParticipante(params) {
    CargarDatosPersonales(params.divPersonal, params.idParticipante);
    CargarDocumentos(params.divDocumentos, params.idParticipante);
    CargarDatosEvento(params.divEvento, params.idParticipante, params.edad, params.mayor_edad);
    CargarDatosEC(params.idParticipante, params.divEC, params.divDetalleEC);
    //open
    $(params.divDialog).dialog('open');
}

/**
    Funciones de filtro de participantes
**/
function PersonExportExcel(sUrl) {
    sUrl = sUrl + $('.filtering form[name=personas]').serialize();
    window.open(sUrl, 'Exportar a Excel');
}
function GetListPais() {
    FillOpciones($('#f-pais'), GetAppURL() + '/Catalogo/GetPaisOptions');
}
function GetListIglesia() {
    var sPais = '0';
    if ($('#f-pais').val() != '') sPais = $('#f-pais').val();
    var sUrl = GetAppURL() + '/Catalogo/GetIglesiaOptions?idPais=' + sPais;

    FillOpciones($('#f-iglesia'), sUrl);
}
function LimpiarMenor() {
    $('#f-tutor').val('');
    $('#f-carta').val('');
    $('#f-firmas').val('');
}
function LimpiarEvento() {
    $('#f-codigo').val('');
    $('#f-tipotransporte').val('');
    $('#f-contrato').val('');
    $('#f-recaudacion').val('');
    $('#f-cortesia').val('');
    $('#f-abonomin').val('');
    $('#f-abonomax').val('');
}
function LimpiarTipoTransporte() {
    $('#f-pagobus').val('');
    $('#f-datosauto').val('');
    $('#f-duenioauto').val('');
    $('#tr-pagobus').hide();
    $('#tr-datosauto').hide();
}
function FillOpciones(ddl, sUrl) {
    _ajaxCall({
        url: sUrl,
        data: {},
        success: function (result) {
            ddl.empty();
            //agregar opcion "todos"
            $(document.createElement('option'))
                .attr('value', '')
                .text('Todos')
                .appendTo(ddl);
            //agregar paises obtenidos
            $(result.Options).each(function (i, item) {
                $(document.createElement('option'))
                    .attr('value', item.Value)
                    .text(item.DisplayText)
                    .appendTo(ddl);
            });
        }
    });
}
function LoadFilters(jtParticipante, bInscrito, ttBus, bTotales) {
    $('#f-pais').change(function () {
        GetListIglesia();
    });
    $('#f-edad').change(function () {
        var accordion = $("#accPersonFilter").accordion();
        var active = accordion.accordion("option", "active");
        if ($('#f-edad').val() == 'menor') {
            accordion.find("#hdMenor").show();
        } else {
            if (active === 2)
                accordion.accordion("option", "active", 0);
            accordion.find("#hdMenor").hide();
        }
        LimpiarMenor();
    });
    $('#f-estado').change(function () {
        var accordion = $("#accPersonFilter").accordion();
        var active = accordion.accordion("option", "active");
        if ($('#f-estado').val() == '' || $('#f-estado').val() == '-1') {
            if (active === 1)
                accordion.accordion("option", "active", 0);
            accordion.find("#hdEvento").hide();
        } else {
            accordion.find("#hdEvento").show();
        }
        LimpiarEvento();
        LimpiarTipoTransporte();
    });
    $('#f-tipotransporte').change(function () {
        LimpiarTipoTransporte();
        if ($('#f-tipotransporte').val() == ttBus) {
            $('#tr-pagobus').show();
        } else {
            $('#tr-datosauto').show();
        }
    });

    $('#ConsultarButton').click(function (e) {
        e.preventDefault();
        $(jtParticipante).jtable('load', $('.filtering form[name=personas]').serializeArray());
        if (bTotales)
            CargarTotalIngresos($('.filtering form[name=personas]').serialize());
    });

    //cargar valores default
    $('#f-inscrito').val(bInscrito);
    if (bInscrito) {
        $('#f-estado option[value="-1"]').remove();
    }
    $("#accPersonFilter").accordion({ heightStyle: "content", collapsible: true });
    GetListPais();
    $('#f-pais').change();
    $('#f-edad').change();
    $('#f-estado').change();
    $('#ConsultarButton').click();
}
function Cancelar(idParticipanteXEvento) {
    var sendObj = { idParticipanteXEvento: idParticipanteXEvento };
    _ajaxCall({
        url: GetAppURL() + "/Participante/CancelarInscripcion",
        data: sendObj,
        success: function (result) {
            $('#p-resultado').html(result.Message);
            $('#CancelTable').jtable('updateRecord', {
                record: {
                    idParticipanteXEvento: idParticipanteXEvento,
                    estado: result.Estado
                },
                clientOnly: true
            });
            $('#ui-dialog-resultado').dialog('open');
        }
    });
}
function RealizarCheckin(idParticipanteXEvento) {
    var sendObj = { idParticipanteXEvento: idParticipanteXEvento };
    _ajaxCall({
        url: GetAppURL() + "/Participante/RealizarCheckin",
        data: sendObj,
        success: function (result) {
            $('#p-resultado').html(result.Message);
            $('#ParticipanteTable').jtable('updateRecord', {
                record: {
                    idParticipanteXEvento: idParticipanteXEvento,
                    checkin: result.Checkin
                },
                clientOnly: true
            });
            $('#ui-dialog-resultado').dialog('open');
        }
    });
}